﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using SFsoftSite.Memberships;
using SFsoftSite.Profiles;

namespace SFsoftSite
{
    public partial class Login : System.Web.UI.Page
    {
        #region Page Load

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (HttpContext.Current.User.Identity.Name != string.Empty)
                {
                    Response.Redirect("~/Jogos/ListarJogos.aspx");
                }
            }
        }

        #endregion

        #region Eventos

        protected void Logar_Click(object sender, EventArgs e)
        {
            SFUserManager user = (SFUserManager)Membership.Provider;

            if (user.ValidateUser(txtEmail.Text, txtSenha.Text))
            {
                SFUserInfo us = ((SFUserInfo)user.GetUser(txtEmail.Text, false));

                if (us.Admin)
                {
                    if (!Roles.IsUserInRole(txtEmail.Text, "Admin"))
                        Roles.AddUserToRole(txtEmail.Text, "Admin");
                }
                else
                {
                    if (!Roles.IsUserInRole(txtEmail.Text, "Cliente"))
                        Roles.AddUserToRole(txtEmail.Text, "Cliente");
                }

                SFProfile profile = SFProfile.GetProfile();
                profile.Cliente.ID = us.ID;
                profile.Cliente.Nome = us.Nome;
                profile.Cliente.Email = us.Email;
                profile.Cliente.Senha = us.Senha;
                profile.Cliente.Foto = us.Foto;
                profile.Cliente.Endereco = us.Endereco;
                profile.Cliente.Telefone = us.Telefone;
                profile.Save();

                FormsAuthentication.SetAuthCookie(txtEmail.Text, true);

                if (us.Admin)
                    Response.Redirect("~/Jogos/ListarJogos.aspx");
                else
                    FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, false);
            }
            else
            {
                string mensagem = "E-Mail ou senha incorretos!";
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Mensagem", "alert(' " + mensagem + "')", true);
            }
        }

        #endregion
    }
}